﻿using Minecraft.Model;
using System.Collections.Generic;

namespace Minecraft.Config
{
	public class MinecraftConfig
	{
		/// <summary>
		/// 快捷栏格子初始数量
		/// </summary>
		public static int ShortcutBarCellInitNum = 4;
		/// <summary>
		/// 背包格子初始数量（暂时写死）
		/// </summary>
		public static int BackpackCellInitNum = 60;
		/// <summary>
		/// 幸存者格子个数配置（暂时写死）
		/// </summary>
		public static int SurvivorCellInitNum = BackpackCellInitNum;
		/// <summary>
		/// 装备格子初始数量
		/// </summary>
		public static int EquipmentCellInitNum = 5;

		/// <summary>
		/// 针对物品一系列操作的物品来源配置（目前只用来做物品来源判断）
		/// </summary>
		public static List<EnumGoodsBelongsToType> enumGoodsSourceBelongsToTypeList = new List<EnumGoodsBelongsToType>
		{
			EnumGoodsBelongsToType.ShortcutBar,
			EnumGoodsBelongsToType.Backpack,
			EnumGoodsBelongsToType.FurnitureStorage,
			EnumGoodsBelongsToType.Treasurebox,
			EnumGoodsBelongsToType.PlayerCorpse,
			EnumGoodsBelongsToType.MonsterCorpseAndDismantleFurniture,
		};
		/// <summary>
		/// 快捷栏和背包物品来源的集合
		/// </summary>
		public static List<EnumGoodsBelongsToType> bpShortbarBelongsToTypeList = new List<EnumGoodsBelongsToType>()
		{
			EnumGoodsBelongsToType.ShortcutBar,
			EnumGoodsBelongsToType.Backpack
		};

		/// <summary>
		/// 装备的集合
		/// </summary>
		public static List<EnumGoodsBelongsToType> equipmentBelongsToTypeList = new List<EnumGoodsBelongsToType>()
		{
			EnumGoodsBelongsToType.Equipment,
			EnumGoodsBelongsToType.SurvivorEquipment
		};

		/// <summary>
		/// 可以移除的有物品的家具类型集合
		/// </summary>
		public static List<EnumFurnitureType> canRemoveFurnitureTypeList = new List<EnumFurnitureType>()
		{
			EnumFurnitureType.Output,
			EnumFurnitureType.Storage,
			EnumFurnitureType.Treasurebox
		};

		/// <summary>
		/// 玩家初始生命值
		/// </summary>
		public static int PlayerInitHp = 100;
		/// <summary>
		/// 玩家初始饥饿值
		/// </summary>
		public static int PlayerInitHunger = 100;
		/// <summary>
		/// 玩家初始攻击力
		/// </summary>
		public static int PlayerInitAtk = 10;
		/// <summary>
		/// 玩家初始防御力
		/// </summary>
		public static int PlayerInitDefense = 0;
		/// <summary>
		/// 玩家初始移动速度
		/// </summary>
		public static int PlayerInitMoveSpeed = 15;
		/// <summary>
		/// 玩家初始攻击速度
		/// </summary>
		public static int PlayerInitAtkSpeed = 12;
		/// <summary>
		/// 玩家初始清洁值
		/// </summary>
		public static int PlayerInitClear = 100;




		/// <summary>
		/// 基地地图Id
		/// </summary>
		public static string BaseMapId = "600000";
		/// <summary>
		/// 宝箱的ItemId（来自于家具配置表，写死的）
		/// </summary>
		public static string TreasureboxItemId = "400000";

		/// <summary>
		/// 地图快移动速度
		/// </summary>
		public static double MapTranslationalSpeed_fast = 1;
		/// <summary>
		/// 地图慢移动速度
		/// </summary>
		public static double MapTranslationalSpeed_low = 0.1;

		/// <summary>
		/// 体力值增长速度（key：时间（单位：秒），value：增长幅度（每key秒增长value个））
		/// </summary>
		public static KeyValuePair<int, int> growthRateOfPhysicalStrengthValue = new KeyValuePair<int, int>(5 * 60, 1); //每5分钟

		/// <summary>
		/// 体力值上限
		/// </summary>
		public static int PhysicalStrengthUpperLimit = 100;

		/// <summary>
		/// 体力值消耗系数
		/// </summary>
		public static double PhysicalStrengthValueQuotiety = 1.0 / 10;

		/// <summary>
		/// 物品表中的经验itemid（特殊处理）
		/// </summary>
		public static string ExperienceItemId = "160000";

		/// <summary>
		/// 掉落物品保持的时间（单位：秒）（如果掉落的物品超过该时间，则不能捡起）
		/// </summary>
		public static int DropGoodsTimeKeepSeconds = 60 * 6;

		/// <summary>
		/// 尸体持续时间
		/// </summary>
		public static int CorpseDurationSeconds = 60 * 60 * 2;

		/// <summary>
		/// 家具拆除时生成的背包具有时效性
		/// </summary>
		public static int DismantleFurnitureBackpackSeconds = 60 * 10;

		/// <summary>
		/// 尸潮刷怪解锁等级
		/// </summary>
		public static int BrushMonsterUnlockedLevel = 10;

		/// <summary>
		/// 尸潮刷怪损失间隔时间（单位：秒）
		/// </summary>
		public static int BrushMonsterLossInterval = 10 * 60;


	}
}
